﻿package kit4j.view.cs.swing.listener;

import javax.swing.JList;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.text.JTextComponent;

/**
 * 显示列表被选中项的名称的列表监听器。 从列表中被选中的项中通过getName()方法获取其名称显示到指定的JTextComponent。
 * 
 * @author MiniKnife
 * 
 */
public class ShowListSelectionListener implements ListSelectionListener {

	/**
	 * 要显示名称的文本控件。
	 */
	private JTextComponent text;

	public ShowListSelectionListener(JTextComponent text) {
		this.text = text;
	}

	@Override
	public void valueChanged(ListSelectionEvent evt) {
		try {
			Object item = ((JList) evt.getSource()).getSelectedValue();

			text.setText((String) item.getClass().getDeclaredMethod("getName")
					.invoke(item));
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}